#ifndef GNIAZDO_H
#define GNIAZDO_H

#include "Kolejka.h"

struct Polaczenie
{
       int nrGniazda; // 1..n
       int pr;        // 0..100
	   Polaczenie() { nrGniazda = 0; pr = 0; }
};

class Gniazdo
{
private:
	int nr;		// 1..n
	Kolejka * k;
	bool wejscie;
    bool wyjscie;
	int liczbaMaszyn;
	list <Polaczenie*> polaczenia;
	list <Zadanie*> * maszyny;

	int i;		// wspolrzedna x (do rysowania), 0..4
    int j;		// wspolrzedna y (do rysowania), 0..3

public:
	Gniazdo(void);
	Gniazdo(int _nr, typyKolejki _typ, int _pojemnosc, bool we, bool wy, int lm, int _i, int _j);
	~Gniazdo(void);

public:
       int getNr(void) { return nr; }
	   int getI() { return i; }
       int getJ() { return j; }
	   Kolejka* getKolejka() { return k; }
	   bool getWejscie() { return wejscie; }
       bool getWyjscie() { return wyjscie; }
	   int getLiczbaMaszyn() { return liczbaMaszyn; }
	   

	   void wstawZadanieDoMaszyny(int nrMaszyny, Zadanie * z);
	   int wstawZadanieDoMaszyny(Zadanie * z);
	   Zadanie * usunZadanieZMaszyny(int nrMaszyny);
	   Zadanie * getZadanieZMaszyny(int nrMaszyny);
	   bool czyMaszynaZajeta(int nrMaszyny);
	   bool czySaWolneMaszyny();

	   void wstawPolaczenie(int nr, int pr);
	   int getLiczbaPolaczen(void) { return polaczenia.size(); }
	   Polaczenie* getPolaczenie(int poz);
	   void usunPolaczenie(int nrDo);
	   
	   void edytuj1(typyKolejki _typ, int _pojemnosc, bool we, bool wy, int lm);
	   
};


#endif
